package com.xqboss.apps.vo.box;

import com.xqboss.apps.dto.box.BindBoxDto;
import com.xqboss.apps.enums.box.BoxSequenceEnum;
import com.xqboss.apps.enums.nft.NftTypeEnum;
import com.xqboss.apps.enums.nft.ResellEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.DecimalMin;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author Administrator
 */
@Data
public class BoxInfoVoTwo {

    @ApiModelProperty("藏品id")
    private Long nftId;

    @ApiModelProperty("开箱消耗热豆")
    private BigDecimal openHotBeans;

    @ApiModelProperty("箱子id")
    private Long id;

    @ApiModelProperty("箱子名称")
    private String name;

    @ApiModelProperty("标签id")
    private Long categoryId;

    @ApiModelProperty("分类id")
    private Long categoryNftId;

    @ApiModelProperty("分类名称")
    private String categoryName;

    @ApiModelProperty("父分类名称")
    private String pcName;

    @ApiModelProperty("父分类id")
    private Long parentId;

    @ApiModelProperty("作者id")
    private Long authorId;

    @ApiModelProperty("箱子图片")
    private String headimg;

    @ApiModelProperty("背景图")
    private String bgimg;

    @ApiModelProperty("历史活动图片")
    private String activityImg;

    @ApiModelProperty("发售价格")
    private BigDecimal price;

    @ApiModelProperty("最低价")
    @DecimalMin(value = "0", message = "最小值为0")
    private BigDecimal lowestPrice;

    @ApiModelProperty("最高价")
    private BigDecimal maxPrice;

    @ApiModelProperty("转卖开关")
    private ResellEnum isResell;

    @ApiModelProperty("自动开箱（0否，1是）")
    private Boolean autoOpen;

    @ApiModelProperty("箱子类型：藏品箱子")
    private NftTypeEnum type;

    @ApiModelProperty("开始发售时间")
    private LocalDateTime publishTimeStart;

    @ApiModelProperty("结束发售时间")
    private LocalDateTime publishTimeEnd;

    @ApiModelProperty("详情")
    private String description;

    @ApiModelProperty("模拟销量")
    private Integer simulatedSales;

//    @ApiModelProperty("销量")
//    private Integer sales;

//    @ApiModelProperty("剩余实际库存")
//    private Integer stock;

    @ApiModelProperty("库存总数")
    private Integer totalStock;

//    @ApiModelProperty("锁定中库存")
//    private Integer lockStock;

    @ApiModelProperty("外显库存(发售总量)")
    private Integer displayStock;

    @ApiModelProperty("限购数量")
    private Integer limitStock;

    @ApiModelProperty("单次限购数量")
    private Integer onceLimitStock;

    @ApiModelProperty("购买说明")
    private String buyExplain;

//    @ApiModelProperty("是否上架 0否,1是")
//    private Integer saleable;

    @ApiModelProperty("1随机发，2顺序发")
    private BoxSequenceEnum sequence;

    @ApiModelProperty("冷却时间(分钟)")
    private Integer coolingTime;

//    @ApiModelProperty("创建时间")
//    private LocalDateTime createTime;

    @ApiModelProperty("发行方id")
    private Long publishId;

    @ApiModelProperty("箱子绑定的nft数据")
    private List<BindBoxDto> bindNft;

}
